/**
* @author Lourdes Sanchez
* @author Eugenia Jose
* @author Esteban Castro
* @author Carlos Fernandez
* @author Fernando Turon
* @version 1.0 01-05-12
*
* La clase PantallaPruebas se instancia en distintas parte de la aplicación
*
* @see Prueba, Ronda, InscripcionRonda
*/

package edu.uoc.tds.pec4.swingx;

import java.rmi.RemoteException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

import edu.uoc.tds.pec4.common.RemotoInterface;
import edu.uoc.tds.pec4.exception.FechaInscripcionException;
import edu.uoc.tds.pec4.exception.PruebaNoModificableException;
import edu.uoc.tds.pec4.exception.PruebaNoExisteException;
import edu.uoc.tds.pec4.i18n.GestorIdiomas;
import edu.uoc.tds.pec4.model.Prueba;
import edu.uoc.tds.pec4.model.TipoEstado;
import edu.uoc.tds.pec4.model.Usuario;
import edu.uoc.tds.pec4.server.bbdd.GestorParametro;
import javax.swing.text.MaskFormatter;

//Fernando
public class PantallaPruebas extends javax.swing.JDialog {
    //Variables que se utilizaran a lo largo de la clase
    private Usuario usuario;
    private boolean editable;
    private RemotoInterface remoto;
    private boolean insertandoRegistro;
    private Prueba prueba;
    private MaskFormatter mask;

    //Fernando
    //Constructor de la clase, que recibe por parametro la clase que lo invoca y un atributo indicando si es modal o no
    public PantallaPruebas(PantallaMenuPrincipal parent, boolean modal) throws RemoteException {
        super(parent, modal);
        this.remoto = parent.getRemoto();
        this.usuario = parent.getUsuario();
        this.mask = new javax.swing.text.MaskFormatter();

        initComponents();
        myInitComponents();
    }

    //Fernando
    //Devolvemos informacion del servicio remoto
    //Ha de ser accesible desde el paquete que se compila
    protected RemotoInterface getRemoto() {
        return this.remoto;
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jToolBarraHerramientas = new javax.swing.JToolBar();
        btnNew = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JToolBar.Separator();
        btnEdit = new javax.swing.JButton();
        btnDelete = new javax.swing.JButton();
        btnSave = new javax.swing.JButton();
        jSeparator2 = new javax.swing.JToolBar.Separator();
        btnFind = new javax.swing.JButton();
        jSeparator3 = new javax.swing.JToolBar.Separator();
        btnFirst = new javax.swing.JButton();
        btnPrevious = new javax.swing.JButton();
        btnForward = new javax.swing.JButton();
        btnLast = new javax.swing.JButton();
        jSeparator4 = new javax.swing.JToolBar.Separator();
        btnExit = new javax.swing.JButton();
        jPanelPruebas = new javax.swing.JPanel();
        jlblFechaAlta = new javax.swing.JLabel();
        jlblFechaModificacion = new javax.swing.JLabel();
        jlblFechaBaja = new javax.swing.JLabel();
        jlblDescripcion = new javax.swing.JLabel();
        jtxtDescripcion = new javax.swing.JTextField();
        jlblNumeroDePlazas = new javax.swing.JLabel();
        jtxtNumeroPlazas = new javax.swing.JTextField();
        jtxtResponsableDeAlta = new javax.swing.JTextField();
        jlblResponsableDeAlta = new javax.swing.JLabel();
        jtxtEstadoDeLaPrueba = new javax.swing.JTextField();
        jlblEstadoDeLaPrueba = new javax.swing.JLabel();
        jlblFechasDeInscripcion = new javax.swing.JLabel();
        jlblDesde = new javax.swing.JLabel();
        jlblHasta = new javax.swing.JLabel();
        try {
            mask.setMask("##/##/####");
        } 
        catch (java.text.ParseException exc) {
        }

        mask.setPlaceholderCharacter('_');
        jtxtFechaAlta = new javax.swing.JFormattedTextField(mask);
        try {
            mask.setMask("##/##/####");
        } 
        catch (java.text.ParseException exc) {
        }

        mask.setPlaceholderCharacter('_');
        jtxtFechaModificacion = new javax.swing.JFormattedTextField(mask);
        try {
            mask.setMask("##/##/####");
        } 
        catch (java.text.ParseException exc) {
        }

        mask.setPlaceholderCharacter('_');
        jtxtFechaBaja = new javax.swing.JFormattedTextField(mask);
        jtxtInscripcionDesde = new javax.swing.JTextField();
        jtxtInscripcionHasta = new javax.swing.JTextField();
        jlblId = new javax.swing.JLabel();
        jtxtId = new javax.swing.JTextField();
        jmnuBarPruebas = new javax.swing.JMenuBar();
        jmnuArchivo = new javax.swing.JMenu();
        jmnuNuevo = new javax.swing.JMenuItem();
        jSeparatorArc1 = new javax.swing.JPopupMenu.Separator();
        jmnuSalir = new javax.swing.JMenuItem();
        jmnuEdicion = new javax.swing.JMenu();
        jmnuEdicionEditar = new javax.swing.JCheckBoxMenuItem();
        jmnuEdicionEliminar = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("eOLympics - Pruebas");

        jToolBarraHerramientas.setRollover(true);

        btnNew.setForeground(new java.awt.Color(102, 153, 255));
        btnNew.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/New document.png"))); // NOI18N
        btnNew.setToolTipText("Nuevo");
        btnNew.setFocusable(false);
        btnNew.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnNew.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNewActionPerformed(evt);
            }
        });
        jToolBarraHerramientas.add(btnNew);
        jToolBarraHerramientas.add(jSeparator1);

        btnEdit.setForeground(new java.awt.Color(102, 153, 255));
        btnEdit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Modify.png"))); // NOI18N
        btnEdit.setToolTipText("Moificar");
        btnEdit.setFocusable(false);
        btnEdit.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnEdit.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnEdit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEditActionPerformed(evt);
            }
        });
        jToolBarraHerramientas.add(btnEdit);

        btnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Delete.png"))); // NOI18N
        btnDelete.setToolTipText("Eliminar");
        btnDelete.setFocusable(false);
        btnDelete.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnDelete.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnDelete.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnDeleteActionPerformed(evt);
            }
        });
        jToolBarraHerramientas.add(btnDelete);

        btnSave.setForeground(new java.awt.Color(102, 153, 255));
        btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Download.png"))); // NOI18N
        btnSave.setToolTipText("Guardar");
        btnSave.setFocusable(false);
        btnSave.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnSave.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSaveActionPerformed(evt);
            }
        });
        jToolBarraHerramientas.add(btnSave);
        jToolBarraHerramientas.add(jSeparator2);

        btnFind.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Find.png"))); // NOI18N
        btnFind.setToolTipText("Buscar");
        btnFind.setFocusable(false);
        btnFind.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnFind.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnFind.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnFindActionPerformed(evt);
            }
        });
        jToolBarraHerramientas.add(btnFind);
        jToolBarraHerramientas.add(jSeparator3);

        btnFirst.setForeground(new java.awt.Color(102, 153, 255));
        btnFirst.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/First record.png"))); // NOI18N
        btnFirst.setToolTipText("");
        btnFirst.setEnabled(false);
        btnFirst.setFocusable(false);
        btnFirst.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnFirst.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBarraHerramientas.add(btnFirst);

        btnPrevious.setForeground(new java.awt.Color(102, 153, 255));
        btnPrevious.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Playback.png"))); // NOI18N
        btnPrevious.setToolTipText("");
        btnPrevious.setEnabled(false);
        btnPrevious.setFocusable(false);
        btnPrevious.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnPrevious.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBarraHerramientas.add(btnPrevious);

        btnForward.setForeground(new java.awt.Color(102, 153, 255));
        btnForward.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Play.png"))); // NOI18N
        btnForward.setToolTipText("");
        btnForward.setEnabled(false);
        btnForward.setFocusable(false);
        btnForward.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnForward.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBarraHerramientas.add(btnForward);

        btnLast.setForeground(new java.awt.Color(102, 153, 255));
        btnLast.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Last recor.png"))); // NOI18N
        btnLast.setToolTipText("");
        btnLast.setEnabled(false);
        btnLast.setFocusable(false);
        btnLast.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnLast.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBarraHerramientas.add(btnLast);
        jToolBarraHerramientas.add(jSeparator4);

        btnExit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/Exit.png"))); // NOI18N
        btnExit.setToolTipText("Salir");
        btnExit.setFocusable(false);
        btnExit.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnExit.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExitsalir(evt);
            }
        });
        jToolBarraHerramientas.add(btnExit);

        jlblFechaAlta.setText("Fecha Alta");

        jlblFechaModificacion.setText("Fecha Modificación");

        jlblFechaBaja.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jlblFechaBaja.setText("Fecha Baja");

        jlblDescripcion.setText("Descripción");

        jtxtDescripcion.setColumns(5);

        jlblNumeroDePlazas.setText("Nº de plazas");

        jtxtResponsableDeAlta.setEditable(false);

        jlblResponsableDeAlta.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jlblResponsableDeAlta.setText("Responsable de Alta");

        jtxtEstadoDeLaPrueba.setEditable(false);

        jlblEstadoDeLaPrueba.setFont(new java.awt.Font("Tahoma", 1, 11));
        jlblEstadoDeLaPrueba.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jlblEstadoDeLaPrueba.setText("Estado de la Prueba");

        jlblFechasDeInscripcion.setFont(new java.awt.Font("Tahoma", 1, 11));
        jlblFechasDeInscripcion.setText("Fechas de Inscripción");

        jlblDesde.setText("Desde (DD/MM/AAAA)");

        jlblHasta.setText("Hasta (DD/MM/AAAA)");

        jtxtFechaAlta.setEditable(false);

        jtxtFechaModificacion.setEditable(false);

        jtxtFechaBaja.setEditable(false);

        javax.swing.GroupLayout jPanelPruebasLayout = new javax.swing.GroupLayout(jPanelPruebas);
        jPanelPruebas.setLayout(jPanelPruebasLayout);
        jPanelPruebasLayout.setHorizontalGroup(
            jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelPruebasLayout.createSequentialGroup()
                        .addComponent(jlblFechaAlta)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtxtFechaAlta, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jlblFechaModificacion)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtxtFechaModificacion, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jlblFechaBaja, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jtxtFechaBaja, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE))
                    .addGroup(jPanelPruebasLayout.createSequentialGroup()
                        .addComponent(jlblDescripcion)
                        .addGap(18, 18, 18)
                        .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                                .addComponent(jtxtNumeroPlazas, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(26, 26, 26)
                                .addComponent(jlblResponsableDeAlta, javax.swing.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jtxtResponsableDeAlta, javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE))
                            .addComponent(jtxtDescripcion, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelPruebasLayout.createSequentialGroup()
                        .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jlblFechasDeInscripcion, javax.swing.GroupLayout.DEFAULT_SIZE, 274, Short.MAX_VALUE)
                            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jlblHasta, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jlblDesde, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jtxtInscripcionHasta)
                                    .addComponent(jtxtInscripcionDesde, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 23, Short.MAX_VALUE)))
                        .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jlblEstadoDeLaPrueba, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 48, Short.MAX_VALUE))
                            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jtxtEstadoDeLaPrueba, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addComponent(jlblNumeroDePlazas, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        jPanelPruebasLayout.setVerticalGroup(
            jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelPruebasLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblFechaAlta)
                    .addComponent(jlblFechaModificacion)
                    .addComponent(jlblFechaBaja)
                    .addComponent(jtxtFechaAlta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jtxtFechaModificacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jtxtFechaBaja, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblDescripcion)
                    .addComponent(jtxtDescripcion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblNumeroDePlazas)
                    .addComponent(jtxtNumeroPlazas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jtxtResponsableDeAlta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jlblResponsableDeAlta))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblFechasDeInscripcion)
                    .addComponent(jlblEstadoDeLaPrueba))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblDesde)
                    .addComponent(jtxtEstadoDeLaPrueba, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jtxtInscripcionDesde, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelPruebasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlblHasta)
                    .addComponent(jtxtInscripcionHasta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        jlblId.setText("Prueba");

        jtxtId.setEditable(false);
        jtxtId.setFont(new java.awt.Font("Tahoma", 1, 12));
        jtxtId.setHorizontalAlignment(javax.swing.JTextField.CENTER);

        jmnuArchivo.setText("Archivo");
        jmnuArchivo.setFont(new java.awt.Font("Tahoma", 1, 11));

        jmnuNuevo.setText("Nuevo");
        jmnuNuevo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmnuNuevoActionPerformed(evt);
            }
        });
        jmnuArchivo.add(jmnuNuevo);
        jmnuArchivo.add(jSeparatorArc1);

        jmnuSalir.setText("Salir");
        jmnuSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmnuSalirActionPerformed(evt);
            }
        });
        jmnuArchivo.add(jmnuSalir);

        jmnuBarPruebas.add(jmnuArchivo);

        jmnuEdicion.setText("Edición");
        jmnuEdicion.setFont(new java.awt.Font("Tahoma", 1, 11));

        jmnuEdicionEditar.setText("Editar");
        jmnuEdicionEditar.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jmnuEdicionEditarItemStateChanged(evt);
            }
        });
        jmnuEdicion.add(jmnuEdicionEditar);

        jmnuEdicionEliminar.setText("Eliminar");
        jmnuEdicionEliminar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmnuEdicionEliminarActionPerformed(evt);
            }
        });
        jmnuEdicion.add(jmnuEdicionEliminar);

        jmnuBarPruebas.add(jmnuEdicion);

        setJMenuBar(jmnuBarPruebas);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jToolBarraHerramientas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 41, Short.MAX_VALUE)
                .addComponent(jlblId)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jtxtId, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanelPruebas, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jToolBarraHerramientas, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jtxtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jlblId))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelPruebas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-499)/2, (screenSize.height-288)/2, 499, 288);
    }// </editor-fold>//GEN-END:initComponents

    //Fernando
    //Evento asociado al boton añadir
    private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed
        this.addPrueba();
}//GEN-LAST:event_btnNewActionPerformed

    //Fernando
    //Evento asociado al boton editar
    private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEditActionPerformed
        this.setEditable(!this.editable);
}//GEN-LAST:event_btnEditActionPerformed

    //Fernando
    //Evento asociado al boton eliminar
    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteActionPerformed
        this.anularPrueba();
}//GEN-LAST:event_btnDeleteActionPerformed

    //Fernando
    //Evento asociado al boton guardar
    private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
        this.savePrueba();
}//GEN-LAST:event_btnSaveActionPerformed

    //Fernando
    //Evento asociado al boton buscar
    private void btnFindActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFindActionPerformed
        this.abrirPantallaPruebasLista();
}//GEN-LAST:event_btnFindActionPerformed

    //Fernando
    //Evento asociado al boton salir
    private void btnExitsalir(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExitsalir
        this.setVisible(false);
}//GEN-LAST:event_btnExitsalir

    //Fernando
    //Evento asociado al item editar del menu
    private void jmnuEdicionEditarItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jmnuEdicionEditarItemStateChanged
        this.editable = !this.editable;
        this.setEditable(editable);
    }//GEN-LAST:event_jmnuEdicionEditarItemStateChanged

    //Fernando
    //Evento asociado al boton Nuevo
    private void jmnuNuevoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmnuNuevoActionPerformed
        this.addPrueba();
    }//GEN-LAST:event_jmnuNuevoActionPerformed

    //Fernando
    //Evento que o se puede elininar
    private void jbtnRondaFinalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnRondaFinalActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jbtnRondaFinalActionPerformed

    //Fernando
    //Evento asociado a la accion salir del menu
    private void jmnuSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmnuSalirActionPerformed
        // TODO add your handling code here:
        this.setVisible(false);
    }//GEN-LAST:event_jmnuSalirActionPerformed

    //Fernando
    //Evento asociado a la opcion de menu eliminar
    private void jmnuEdicionEliminarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmnuEdicionEliminarActionPerformed
        // TODO add your handling code here:
        this.anularPrueba();
    }//GEN-LAST:event_jmnuEdicionEliminarActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                PantallaPruebas dialog = null;
                try {
                    dialog = new PantallaPruebas(new PantallaMenuPrincipal(), true);
                } catch (RemoteException ex) {
                    Logger.getLogger(PantallaPruebas.class.getName()).log(Level.SEVERE, null, ex);
                }

                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    //Fernando
    //Metodo que cambia el caracter editable del formulario según la variable recibida
    private void setEditable(boolean editable){
        try {        
            //No se puede modificar nada salvo que este en estado de inscripcion y lanzariamos una excepcion
            //   salvo que estemos añadiendo
            if(editable==true){
                if(this.prueba.getId_estado_prueba()!=TipoEstado.INSCRIPCION.valor())
                    throw new PruebaNoModificableException();
            }
            
            this.editable = editable;

            this.jtxtDescripcion.setEditable(this.editable);
            this.jtxtNumeroPlazas.setEditable(this.editable);
            this.jtxtInscripcionDesde.setEditable(this.editable);
            this.jtxtInscripcionHasta.setEditable(this.editable);
        }

        //En el caso en que se haya lanzado la excepcion
        catch(PruebaNoModificableException exc){
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error.pruebanomodificable"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }
    }

    //Fernando
    //Metodo para limpiar los controles de la pantalla
    private void limpiarPantalla(){
        this.jtxtId.setText(null);
        this.jtxtDescripcion.setText(null);
        this.jtxtFechaAlta.setText(null);
        this.jtxtFechaModificacion.setText(null);
        this.jtxtFechaBaja.setText(null);
        this.jtxtNumeroPlazas.setText(null);
        this.jtxtInscripcionDesde.setText(null);
        this.jtxtInscripcionHasta.setText(null);
        this.jtxtResponsableDeAlta.setText(null);
        this.jtxtEstadoDeLaPrueba.setText(null);
    }

    //Fernando
    //Se accede desde un JDialog. Ha de ser protegida!!!
    //Metodo para mostrar la informacion de la Prueba cuyo ID SE PASA POR PARAMETRO
    protected void mostrarPrueba(int id_prueba) throws RemoteException{
        //Si refrescamos pantalla ya no estaremos añadiendo
        this.insertandoRegistro = false;
        this.limpiarPantalla();

        try{
            Prueba prueba = null;
            prueba = this.remoto.getPrueba(id_prueba);

            //Si no se encuentra ese id de prueba en la BBDD lanzaremos una excepcion
            if(prueba == null)
                throw new PruebaNoExisteException();
            
            this.prueba = prueba;

            //Asignamos a los controles los valores devueltos y contenido en la clase
            this.jtxtId.setText(String.valueOf(prueba.getId_prueba()));
            this.jtxtDescripcion.setText(prueba.getDescripcion_prueba());
            this.jtxtFechaAlta.setText(getFormatoFecha(prueba.getFecha_alta()));
            this.jtxtFechaModificacion.setText(getFormatoFecha(prueba.getFecha_modificacion()));
            this.jtxtFechaBaja.setText(getFormatoFecha(prueba.getFecha_baja()));
            this.jtxtNumeroPlazas.setText(String.valueOf(prueba.getNumero_plazas()));
            this.jtxtInscripcionDesde.setText(getFormatoFecha(prueba.getFecha_inicio_inscripcion()));
            this.jtxtInscripcionHasta.setText(getFormatoFecha(prueba.getFecha_fin_inscripcion()));

            //Obtenemos el nombre completo de usuario
            int idResponsableAlta;
            Usuario responsableAlta = new Usuario();
            String nombreCompletoUsuario;

            //Si no hay
            try{
                idResponsableAlta = prueba.getId_responsable_alta();
                responsableAlta = this.remoto.getUsuario(idResponsableAlta);
                nombreCompletoUsuario = usuario.toString();
                this.jtxtResponsableDeAlta.setText(nombreCompletoUsuario);
            }

            catch(Exception exc){
                this.jtxtResponsableDeAlta.setText("");
            }

            //Obtenemos la descripcion del estado de la prueba
            String descripcionEstadoPrueba;
            int idDescripcionEstadoPrueba;
            idDescripcionEstadoPrueba = prueba.getId_estado_prueba();
            descripcionEstadoPrueba = this.remoto.getDescripcionEstadoPrueba(idDescripcionEstadoPrueba);
            this.jtxtEstadoDeLaPrueba.setText(descripcionEstadoPrueba);
        }

            //En el caso en que no exista la prueba la capturamos aqui
        catch(PruebaNoExisteException exc){
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error.pruebanoexiste"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //Capturamos el error en caso de problemas con el servicio remoto
        catch (RemoteException exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }
        
        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }
    }

    //Fernado
    //Metodo para abrir la lista de pruebas con la que podemos seleccionar una y posicionarnos en ella
    private void abrirPantallaPruebasLista(){
        PantallaPruebasLista pantallaPruebasLista = new PantallaPruebasLista(this,true);
        pantallaPruebasLista.setVisible(true);
    }

    //Fernando
    //Metodo para añadir una prueba
    private void addPrueba(){
        try{
            //Declaramos variables y recuperamos datos del fichero de parametros
            int numeroDePlazas = 0;

            //Determinamos el numero de plazas desde el gestor de parametros
            GestorParametro gestorParametro = new GestorParametro();
            numeroDePlazas = gestorParametro.getNumeroPersonasMaximoPorPrueba();

            //Indicamos que estamos inserrtando el registro y limpiamos los controles
            this.insertandoRegistro = true;
            this.limpiarPantalla();

            //Establecemos los valoresPredeterminados
            this.prueba = new Prueba();
            this.prueba.setFecha_alta(new Date());
            this.prueba.setId_estado_prueba(TipoEstado.INSCRIPCION.valor());
            this.prueba.setNumero_plazas(numeroDePlazas);
            this.prueba.setId_responsable_alta(this.usuario.getId_usuario());

            //Obtenemos la descripción del estado de la prueba
            String descripcionEstadoPrueba;
            descripcionEstadoPrueba = this.remoto.getDescripcionEstadoPrueba(TipoEstado.INSCRIPCION.valor());

            //Obtenemos el nombre completo de usuario
            String nombreCompletoUsuario;
            nombreCompletoUsuario = this.usuario.toString();

            //Para obtener una cadena de texto con la fecha
            String fechaDeAlta = this.getFormatoFecha(this.prueba.getFecha_alta());
            
            this.jtxtFechaAlta.setText(fechaDeAlta);
            this.jtxtEstadoDeLaPrueba.setText(descripcionEstadoPrueba);
            this.jtxtNumeroPlazas.setText(String.valueOf(numeroDePlazas));
            this.jtxtResponsableDeAlta.setText(nombreCompletoUsuario);
            this.jtxtDescripcion.setEditable(true);
            this.jtxtNumeroPlazas.setEditable(true);
            this.jtxtInscripcionDesde.setEditable(true);
            this.jtxtInscripcionHasta.setEditable(true);
        }

        //Capturamos el error en caso de problemas con el servicio remoto
        catch (RemoteException exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }
    }
    
    //Fernando
    //Metodo para guardar datos de una prueba
    private void savePrueba(){
        //Definimos una variable para reciuperar el id de la prueba insertada y poder nmostrarla despues
        int registroInsertado;
        //Si estamos en modo insercion
        if(this.insertandoRegistro){
            try {
                //Pasamos los datos por pantalla a un objeto de tipo Prueba
                this.prueba = this.convertirAObjeto();

                //Si validamos la prueba informamos y reseteamos las variables asociadas a la insercion
                if(this.jtxtInscripcionDesde.getText().isEmpty() || this.jtxtInscripcionDesde.getText()==null)
                    throw new FechaInscripcionException(GestorIdiomas.getMessage("gestorprueba.errorFechaInicioInscripcionIncorrecta"));

                if(this.jtxtInscripcionHasta.getText().isEmpty() || this.jtxtInscripcionHasta.getText()==null)
                    throw new FechaInscripcionException(GestorIdiomas.getMessage("gestorprueba.errorFechaFinInscripcionIncorrecta"));

                boolean estaValidado = false;
                estaValidado =  this.remoto.validarPrueba(this.prueba);

                if (estaValidado==true) {
                    registroInsertado = this.remoto.insertarPrueba(prueba);
                    JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.informacion.pruebagrabadaconexito"), GestorIdiomas.getMessage("pantallaPruebas.informacionTitulo"), JOptionPane.INFORMATION_MESSAGE);
                    
                    this.insertandoRegistro = false;
                    this.editable = false;
                    this.setEditable(false);
                    this.mostrarPrueba(registroInsertado);
                }
            }

            catch(FechaInscripcionException exc){
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, exc.getMessage(), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }

            //Capturamos el error en caso de problemas con el servicio remoto
            catch (RemoteException exc) {
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }
            
            //En el caso en que se haya capturado una excepcion de caracter general
            catch (Exception exc) {
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }
        }
        
        //En el caso en que no estemos en modo insercion u otra causa informamos de ello
        else {
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error.modificar"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            //Intentamos posicionarnos en la prueba que mostrabams antes de la intentar la insercion
            try {
                int id_prueba;
                id_prueba = Integer.valueOf(this.jtxtId.getText());
                this.mostrarPrueba(id_prueba);
            }

            //En el caso en que se haya capturado una excepcion de caracter general
            catch (Exception exc) {
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }
        }
    }

    //Fernando
    //metodo para dar de baja (logica) una prueba
    private void anularPrueba(){
        //Definimos una variable para almacenar si el usuario quiere o no eliminar la prueba
        int opcionElegida;
        opcionElegida = JOptionPane.showConfirmDialog(null, GestorIdiomas.getMessage("pantallaPruebas.preguntaAlAnular"), GestorIdiomas.getMessage("pantallaPruebas.informacionTitulo"),JOptionPane.YES_NO_OPTION);

        //Si decide eliminarla
        if(opcionElegida==JOptionPane.YES_OPTION){
            try {
                //Anulamos la prueba
                int id_prueba;
                id_prueba = Integer.parseInt(this.jtxtId.getText());
                
                int numInscritos;
                numInscritos = this.remoto.getNumeroInscritos(id_prueba);
                if(numInscritos == 0){
                    this.remoto.anularPrueba(id_prueba);
                    JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.elregistrosehaeliminado"), GestorIdiomas.getMessage("pantallaPruebas.informacionTitulo"), JOptionPane.INFORMATION_MESSAGE);

                    //Mostramos la informacion con la prueba anulada
                    this.mostrarPrueba(Integer.parseInt(this.jtxtId.getText()));
                }
                else{
                    JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error.nosepuedeanular"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
                }
            }

            //Caturaremos el error  relacionado conb el sercicio remote
            catch (RemoteException exc) {
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }

             //En el caso en que se haya capturado una excepcion de caracter general
            catch (Exception exc) {
                exc.printStackTrace();
                JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
            }
        }       
    }

    //Fernando
    //Metodo para convertir en un objeto los datos de la prueba que hay en pantalla
    private Prueba convertirAObjeto(){
        //Instanciamos una nueva clase de tipo Prueba
        Prueba prueba = new Prueba();

        try {
            prueba.setDescripcion_prueba(this.jtxtDescripcion.getText());
            prueba.setFecha_alta(this.getFormatoFecha(this.jtxtFechaAlta.getText()));
            //prueba.setFecha_modificacion();
            //prueba.setFecha_baja();
            int numeroPlazas;
            numeroPlazas = Integer.valueOf(this.jtxtNumeroPlazas.getText());
            prueba.setNumero_plazas(numeroPlazas);
            prueba.setFecha_inicio_inscripcion(this.getFormatoFecha(this.jtxtInscripcionDesde.getText()));
            prueba.setFecha_fin_inscripcion(this.getFormatoFecha(this.jtxtInscripcionHasta.getText()));
            prueba.setId_estado_prueba(TipoEstado.INSCRIPCION.valor());
            prueba.setId_responsable_alta(this.usuario.getId_usuario());

        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //Retornamos la prueba
        return prueba;
    }

    //Fernando
    //Metodo para formatear fechas recibidas por parametro en cadenas de texto
    private String getFormatoFecha(Date fecha){
        String cadenaADevolver = null;
        SimpleDateFormat sdf = null;

        try{
            sdf = new SimpleDateFormat("dd/MM/yyyy");
            if(fecha != null)
                cadenaADevolver = sdf.format(fecha);
        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        return cadenaADevolver;
    }

    //Fernando
    //Metodo para convertir un texto en fecha
    private Date getFormatoFecha(String fechaTexto){
        Date fecha = new Date();
        //En el caso de error lanzaremos la excepcion correspondiente
        try {
            if (!fechaTexto.isEmpty()) {
                SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                sdf.setLenient(false);
                fecha = sdf.parse(fechaTexto);
            }
        }

        //En el caso en que la excepcion sea al realizar la conversion
        catch (ParseException exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error.convertirfecha"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //Devolvemos la cadena fecha en formato fecha
        finally{
            return fecha;
        }
    }

    //Fernando
    //Metodo para inicializar mis componentes
    private void myInitComponents(){
        //En caso de excepcion la capturaremos
        try {
            //Mostramos el primer registro disponible
            int registroAPosicionar;
            registroAPosicionar = 1;
            this.mostrarPrueba(registroAPosicionar);
            
            //Establecemos la ediciona a false
            this.setEditable(false);

            //Llamando al gestor de idiomas para los menus y etiquetas de controles
            this.jmnuArchivo.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuArchivo"));
            this.jmnuNuevo.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuArchivoNuevo"));
            this.jmnuSalir.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuArchivoSalir"));
            this.jmnuEdicion.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuEdicion"));
            this.jmnuEdicionEditar.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuEdicionEditar"));
            this.jmnuEdicionEliminar.setText(GestorIdiomas.getMessage("pantallaPruebas.MenuEdicionEliminar"));

            this.jlblFechaAlta.setText(GestorIdiomas.getMessage("pantallaPruebas.lblFechaAlta"));
            this.jlblFechaModificacion.setText(GestorIdiomas.getMessage("pantallaPruebas.lblFechaModificacion"));
            this.jlblFechaBaja.setText(GestorIdiomas.getMessage("pantallaPruebas.lblFechaBaja"));
            this.jlblDescripcion.setText(GestorIdiomas.getMessage("pantallaPruebas.lblDescripcion"));
            this.jlblNumeroDePlazas.setText(GestorIdiomas.getMessage("pantallaPruebas.lblNumeroDePlazas"));
            this.jlblResponsableDeAlta.setText(GestorIdiomas.getMessage("pantallaPruebas.lblResponsableDeAlta"));
            this.jlblFechasDeInscripcion.setText(GestorIdiomas.getMessage("pantallaPruebas.lblFechasDeInscripcion"));
            this.jlblDesde.setText(GestorIdiomas.getMessage("pantallaPruebas.lblDesde"));
            this.jlblHasta.setText(GestorIdiomas.getMessage("pantallaPruebas.lblHasta"));
            this.jlblEstadoDeLaPrueba.setText(GestorIdiomas.getMessage("pantallaPruebas.lblEstadoDeLaPrueba"));

            this.btnNew.setToolTipText(GestorIdiomas.getMessage("btnNew.tooltiptext"));
            this.btnDelete.setToolTipText(GestorIdiomas.getMessage("btnDelete.tooltiptext"));
            this.btnFind.setToolTipText(GestorIdiomas.getMessage("btnFind.tooltiptext"));
            this.btnEdit.setToolTipText(GestorIdiomas.getMessage("btnEdit.tooltiptext"));
            this.btnSave.setToolTipText(GestorIdiomas.getMessage("btnSave.tooltiptext"));
            this.btnExit.setToolTipText(GestorIdiomas.getMessage("btnExit.tooltiptext"));

            this.setTitle(GestorIdiomas.getMessage("pantallaPruebas.Titulo"));
        }

        //En el caso en que capturemos una excepcion asociada al servicio remoto
        catch (RemoteException exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, exc.detail, GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }

        //En el caso en que se haya capturado una excepcion de caracter general
        catch (Exception exc) {
            exc.printStackTrace();
            JOptionPane.showMessageDialog(this, GestorIdiomas.getMessage("pantallaPruebas.error"), GestorIdiomas.getMessage("pantallaPruebas.errorTitulo"), JOptionPane.ERROR_MESSAGE);
        }
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnDelete;
    private javax.swing.JButton btnEdit;
    private javax.swing.JButton btnExit;
    private javax.swing.JButton btnFind;
    private javax.swing.JButton btnFirst;
    private javax.swing.JButton btnForward;
    private javax.swing.JButton btnLast;
    private javax.swing.JButton btnNew;
    private javax.swing.JButton btnPrevious;
    private javax.swing.JButton btnSave;
    private javax.swing.JPanel jPanelPruebas;
    private javax.swing.JToolBar.Separator jSeparator1;
    private javax.swing.JToolBar.Separator jSeparator2;
    private javax.swing.JToolBar.Separator jSeparator3;
    private javax.swing.JToolBar.Separator jSeparator4;
    private javax.swing.JPopupMenu.Separator jSeparatorArc1;
    private javax.swing.JToolBar jToolBarraHerramientas;
    private javax.swing.JLabel jlblDescripcion;
    private javax.swing.JLabel jlblDesde;
    private javax.swing.JLabel jlblEstadoDeLaPrueba;
    private javax.swing.JLabel jlblFechaAlta;
    private javax.swing.JLabel jlblFechaBaja;
    private javax.swing.JLabel jlblFechaModificacion;
    private javax.swing.JLabel jlblFechasDeInscripcion;
    private javax.swing.JLabel jlblHasta;
    private javax.swing.JLabel jlblId;
    private javax.swing.JLabel jlblNumeroDePlazas;
    private javax.swing.JLabel jlblResponsableDeAlta;
    private javax.swing.JMenu jmnuArchivo;
    private javax.swing.JMenuBar jmnuBarPruebas;
    private javax.swing.JMenu jmnuEdicion;
    private javax.swing.JCheckBoxMenuItem jmnuEdicionEditar;
    private javax.swing.JMenuItem jmnuEdicionEliminar;
    private javax.swing.JMenuItem jmnuNuevo;
    private javax.swing.JMenuItem jmnuSalir;
    private javax.swing.JTextField jtxtDescripcion;
    private javax.swing.JTextField jtxtEstadoDeLaPrueba;
    private javax.swing.JFormattedTextField jtxtFechaAlta;
    private javax.swing.JFormattedTextField jtxtFechaBaja;
    private javax.swing.JFormattedTextField jtxtFechaModificacion;
    private javax.swing.JTextField jtxtId;
    private javax.swing.JTextField jtxtInscripcionDesde;
    private javax.swing.JTextField jtxtInscripcionHasta;
    private javax.swing.JTextField jtxtNumeroPlazas;
    private javax.swing.JTextField jtxtResponsableDeAlta;
    // End of variables declaration//GEN-END:variables
}
